package com.orangelife.service.cerHouseholder;

import java.util.List;
import java.util.Map;

import com.orangelife.exception.AppBizException;
import com.orangelife.service.cerHouseholder.model.CerHouseholderDto;

/*****************************************************************
 * Copyright(C) ORANGELIFE Corporation 2015. All Rights Reserved.
 *****************************************************************/
/*
 * ============================================================== 功能名
 * CerHouseholder类的 service层的增删改查
 * 
 * @author @author
 * 
 * @version 1.1.0
 * 
 * @date 2016-06-17 13:50:34
 * ==============================================================
 */
public interface ICerHouseholderService {

	/***
	 * 获取房屋详情
	 * 
	 * @param apartmentID
	 * @return
	 * @throws AppBizException
	 */
	public Map<String, Object> getHouseInfo(String apartmentID)
			throws AppBizException;

	/**
	 * 用途 添加cerHouseholder（橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-17 13:50:34
	 * @param cerHouseholder
	 * @return
	 * @throws AppBizException
	 */
	public int addCerHouseholder(CerHouseholderDto cerHouseholder)
			throws AppBizException;

	public int addCerHouseholder(List<CerHouseholderDto> cerHouseholder)
			throws AppBizException;

	/**
	 * 用途 修改cerHouseholder（橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-17 13:50:34
	 * @param cerHouseholder
	 * @return
	 * @throws AppBizException
	 */

	public int editCerHouseholder(CerHouseholderDto cerHouseholder)
			throws AppBizException;

	/**
	 * 用途 单个查询 （橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-17 13:50:34
	 * @param cerHouseholderID
	 * @return
	 * @throws AppBizException
	 */

	public CerHouseholderDto findCerHouseholderByID(String cerHouseholderID)
			throws AppBizException;

	/**
	 * 用途 逻辑删除（橙子生活）
	 * 
	 * @author
	 * @date创建时间 2016-06-17 13:50:34
	 * @param cerHouseholderID
	 * @return
	 * @throws AppBizException
	 */
	public int deleteCerHouseholderByLogic(String cerHouseholderID)
			throws AppBizException;

	/**
	 * 用途 查询列表 （橙子生活）
	 * 
	 * @author
	 * @date 创建时间 2016-06-17 13:50:34
	 * @param search
	 *            搜索内容
	 * @param tsCreate
	 *            创建时间
	 * @param pageNo
	 *            页码
	 * @param pageSize
	 *            页面大小
	 * @return
	 * @throws AppBizExceptionception
	 */
	public List<Map<String, Object>> findCerHouseholderByPage(String tsCreate,
			String search, int pageNo, int pageSize) throws AppBizException;

	/**
	 * 用途 查询列表（返回对对象）（橙子生活）
	 * 
	 * @author
	 * @date 创建时间 2016-06-17 13:50:34
	 * @param servletRequest
	 * @param search
	 *            搜索内容
	 * @param tsCreate
	 *            创建时间
	 * @param pageNo
	 *            页码
	 * @param pageSize
	 *            页面大小
	 * @return
	 * @throws AppBizException
	 */
	public List<CerHouseholderDto> getCerHouseholderByPage(String tsCreate,
			String search, int pageNo, int pageSize) throws AppBizException;

	/**
	 * 用途 根据一张表内的所有ID查询cerHouseholder（橙子生活）(返回Map<String, Object>)
	 * 
	 * @author
	 * @date 创建时间 2016-06-17 13:50:34
	 * @param householderID
	 *            (非必填字段)
	 * 
	 * @param apartmentID
	 *            (非必填字段)
	 * 
	 * @param type
	 *            (非必填字段)
	 * 
	 * @param linkAptHouseholderID
	 *            (非必填字段)
	 * @return
	 * @throws AppBizException
	 */

	public List<Map<String, Object>> selectCerHouseholderByRelevantID(
			String householderID, String apartmentID, String type,
			String linkAptHouseholderID, String name, String phone,
			String ownerID) throws AppBizException;

	/**
	 * 用途 根据一张表内的所有ID查询cerHouseholder（橙子生活）(返回对象)
	 * 
	 * @author
	 * @date 创建时间 2016-06-17 13:50:34
	 * @param householderID
	 *            (非必填字段)
	 * 
	 * @param apartmentID
	 *            (非必填字段)
	 * 
	 * @param type
	 *            (非必填字段)
	 * 
	 * @param linkAptHouseholderID
	 *            (非必填字段)
	 * @return
	 * @throws AppBizException
	 */

	public List<CerHouseholderDto> findCerHouseholderByRelevantID(
			String householderID, String apartmentID, String type,
			String linkAptHouseholderID, String name, String phone,
			String ownerID) throws AppBizException;

	/**
	 * 用途 批量查询cerHouseholder（橙子生活）(返回对象)
	 * 
	 * @author
	 * @date 创建时间 2016-06-17 13:50:34
	 * 
	 * @return
	 * @throws AppBizException
	 */

	public List<CerHouseholderDto> bauthfindCerHouseholder(
			List<String> cerHouseholderIDs) throws AppBizException;

	/**
	 * 用途 批量查询cerHouseholder（橙子生活）(返回Map)
	 * 
	 * @author
	 * @date 创建时间 2016-06-17 13:50:34
	 * 
	 * @return
	 * @throws AppBizException
	 */

	public List<Map<String, Object>> bauthfindCerHouseholderByMap(
			Map<String, Object> cerHouseholder) throws AppBizException;

	/***
	 * 更具业主授权Id删除业主信息
	 * 
	 * @param linkAptHouseholderID
	 * @return
	 * @throws AppBizException
	 */
	public int deleteCerHouseholderBylinkID(String linkAptHouseholderID)
			throws AppBizException;

	/***
	 * 添加业主
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int addOwners(Map<String, Object> paMap) throws AppBizException;

	/***
	 * 修噶业主
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int editOwners(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 修改车位
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int changeOwner(Map<String, Object> paMap) throws AppBizException;

	/***
	 * 修改产权
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int editProperty(Map<String, Object> paMap) throws AppBizException;

	/***
	 * 导入产权
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int importProperty(Map<String, Object> paMap) throws AppBizException;

	/***
	 * 添加产权
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int addProperty(Map<String, Object> paMap) throws AppBizException;

	/****
	 * 修改小区
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int editComm(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 8 修改楼栋
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int editBuilding(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 8 t添加楼栋
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int addBuilding(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 删除楼栋
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int deleteBuilding(String buildingID) throws AppBizException;

	/**
	 * 批量删除楼栋
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int bauthDeleteBuilding(Map<String, Object> paMap)
			throws AppBizException;

	/**
	 * 更新单元
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int editUnit(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 新增单元
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int addUnit(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 删除单元
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int deleteUnit(String unitID) throws AppBizException;

	/**
	 * 批量删除单元
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */
	public int bauthDeleteUnit(Map<String, Object> paMap)
			throws AppBizException;

	/**
	 * 更新房号
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int editApartment(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 新增房号
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int addApartment(Map<String, Object> paMap) throws AppBizException;

	/**
	 * 删除房号
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int deleteApartment(String apartmentID) throws AppBizException;

	/**
	 * 批量删除房号
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int bauthDeleteApartment(Map<String, Object> paMap)
			throws AppBizException;

	/**
	 * 批量更新
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int bauthEditBuildingUnit(Map<String, Object> paMap)
			throws AppBizException;

	/**
	 * 更新房号
	 * 
	 * @param paMap
	 * @return
	 * @throws AppBizException
	 */

	public int bauthEditUnitApart(Map<String, Object> paMap)
			throws AppBizException;

	/***
	 * 批量删除业主
	 * 
	 * @param ownerIDs
	 * @return
	 * @throws AppBizException
	 */
	public int bauthDeleteCerHouseholder(List<String> ownerIDs)
			throws AppBizException;

	public int bauthDeleteCerHouseholderLink(List<String> ownerIDs)
			throws AppBizException;

	/***
	 * 根据小区查询业主
	 * 
	 * @param ownerIDs
	 * @return
	 * @throws AppBizException
	 */
	public List<CerHouseholderDto> batchFindCerHouseholders(String commID)
			throws AppBizException;

	public int addComm(Map<String, Object> paMap) throws AppBizException;

}